import UserAPI from '@/api/user'
import type { ISelectConfig } from '@/components/TableSelect/index.vue'

const selectConfig: ISelectConfig = {
  pk: 'id',
  width: '70%',
  placeholder: '请选择用户',
  formItems: [
    {
      type: 'input',
      label: '关键字',
      prop: 'keywords',
      attrs: {
        placeholder: '用户名/昵称/手机号',
        clearable: true,
        style: {
          width: '200px',
        },
      },
    },
    {
      type: 'tree-select',
      label: '部门',
      prop: 'deptId',
      attrs: {
        'placeholder': '请选择',
        'data': [
          {
            value: 1,
            label: '有来技术',
            children: [
              {
                value: 2,
                label: '研发部门',
              },
              {
                value: 3,
                label: '测试部门',
              },
            ],
          },
        ],
        'filterable': true,
        'check-strictly': true,
        'render-after-expand': false,
        'clearable': true,
        'style': {
          width: '150px',
        },
      },
    },
    {
      type: 'select',
      label: '状态',
      prop: 'status',
      attrs: {
        placeholder: '全部',
        clearable: true,
        style: {
          width: '100px',
        },
      },
      options: [
        { label: '启用', value: 1 },
        { label: '禁用', value: 0 },
      ],
    },
    {
      type: 'date-picker',
      label: '创建时间',
      prop: 'createAt',
      attrs: {
        'type': 'daterange',
        'range-separator': '~',
        'start-placeholder': '开始时间',
        'end-placeholder': '截止时间',
        'value-format': 'YYYY-MM-DD',
        'style': {
          width: '240px',
        },
      },
    },
  ],
  indexAction(params) {
    if ('createAt' in params) {
      const createAt = params.createAt as string[]
      params.startTime = createAt[0]
      params.endTime = createAt[1]
      delete params.createAt
    }
    return UserAPI.getPage(params)
  },
  tableColumns: [
    { type: 'selection', width: 50, align: 'center' },
    { label: '编号', align: 'center', prop: 'id', width: 100 },
    { label: '用户名', align: 'center', prop: 'username' },
    { label: '用户昵称', align: 'center', prop: 'nickname', width: 120 },
    { label: '性别', align: 'center', prop: 'genderLabel', width: 100 },
    { label: '部门', align: 'center', prop: 'deptName', width: 120 },
    { label: '手机号码', align: 'center', prop: 'mobile', width: 120 },
    {
      label: '状态',
      align: 'center',
      prop: 'status',
      templet: 'custom',
      slotName: 'status',
    },
    { label: '创建时间', align: 'center', prop: 'createTime', width: 180 },
  ],
}

export default selectConfig
